Software Language Evolution
ثبت نشده
چکیده
Like any software artifact, software languages are subject to evolution. When a software language evolves, existing language elements may no longer conform to the evolved language. To prevent loss of information, existing elements need to be migrated. Coupled evolution automates the migration of existing elements by attaching a migration specification to the evolution of a language definition. Software language evolution affects different technological spaces such as dataware, grammarware, XMLware, and modelware. In each technological space, different coupled evolution approaches have been proposed. However, it is largely unknown how these approaches relate to each other. To address this, we perform a systematic literature survey on coupled evolution approaches. We derive a feature model focused on determining commonalities and differences between approaches from different technological spaces. In this chapter, we present the application of the feature model and the interpretation of its results, within each technological space as well as across technological spaces. We address specifics within spaces, avenues for future research, portability of techniques across spaces, and correlated features. 2.1 I N T R O D U C T I O N Various areas of computer science deal with information stored in artefacts (or elements). For example, programs store the description of an application, databases store application data and an XML document can store the configuration of an application. Together, we refer to these elements as software [Kleppe, 2008]. Common to all software is that the stored information is structured to some format. Programs conform to a grammar, databases conform to a data model and XML documents conform to a schema. The format of a piece of software, or more generally of a collection of software is described by the software language. We say that software elements conform to a software language, when the software follows the structure outlined in the language. A software language is needed for the software elements to be understood, to be extended or to be processed automatically. Breaking conformance generally has as consequence
منابع مشابه
A Pattern Language for Evolution in Component-Based Software Architectures
– Modern software systems are prone to a continuous evolution under frequently varying requirements. Architecturecentric software evolution enables change in system structure and behavior while maintaining a global view of software to address evolution-centric tradeoffs. The Lehman’s law of continuing change demands for long-living and continuously evolving architectures to prolong the producti...
متن کاملA Pattern Language for the Evolution of Component-based Software Architectures
Architecture-centric software evolution enables change in a system’s structure and behaviour while maintaining a global view of the software to address evolution-centric tradeoffs. The existing solutions for architectural maintenance and evolution fall short of exploiting generic and reusable expertise to address recurring evolution problems. We present a pattern language as a collection of int...
متن کاملUsing Constraints with Action Language for Model Evolution
Since the advent of model driven software engineering (MDSE) it has become necessary to develop techniques and tools for model evolution. In this paper we examine two issues and propose a solution to resolve them. The first is the automation of model evolution and the second is the support of software evolution in modeling languages. We extend Object Constraint Language (OCL) with actions and d...
متن کاملLanguage support for dynamic and evolving software architectures
Language Support for Piecemeal Software Architecture Evolution In the current practice of software engineering there is relative little guidance on how to develop “good” software architectures. Current real-world software architectures often suffer from limited reuse, flexibility, understandability, maintainability, predictability, and several other problems. We can observe that many of these p...
متن کاملTowards Language-Independent Weaving Using Grammar Adapters
Current practices to support software evolution and restructuring, such as aspect-oriented software development and refactoring, have offered new capabilities for addressing the challenges of adapting software. Aspect weavers and refactoring engines enable the evolution of software in a modular and extensible manner, thereby improving the structure of the program and rendering new behavior. How...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012